package com.t.bricks.bussiness.db.dao.person;

import java.util.Date;

import com.t.bricks.bussiness.db.dao.common.BaseDao;
import com.t.bricks.model.MsgEmity;

public interface PersonDao<T> extends BaseDao<T> {
	
	/**
	 * 添加
	 * @Param person
	 * @return
	 */
	MsgEmity add(T person);

	/**
	 * 删除
	 * @Param sId
	 * @Param iVersion
	 * @return
	 */
	MsgEmity del(String sId, Integer iVersion);
	
	/**
	 * 修改
	 * 注意:更新成功后对象属性iVersion值将被+1
	 *     当对象的属性值为null时不更新字段
	 * @Param person
	 * @return
	 */
	MsgEmity edit(T person);

	/**
	 * 检查待修改内容是否存在重复数据
	 * @Param person
	 * @return
	 */
	MsgEmity checkRepeatByEdit(T person);

	/**
	 * 检查待新增内容是否存在重复数据
	 * @Param person
	 * @return
	 */
	MsgEmity checkRepeatByAdd(T person);

	/**
	 * 停用
	 * @param sId
	 * @param sModifieder
	 * @return
	 */
	MsgEmity stop(String sId, String sModifieder);
	
	/**
	 * 启用
	 * @param sId
	 * @param dEndTime
	 * @param sModifieder
	 * @return
	 */
	MsgEmity start(String sId, Date dEndTime, String sModifieder);
	
	/**
	 * 根据部门编号查询员工
	 * @param sDeparmentId 部门编号
	 * @return
	 */
	MsgEmity findByDepartmentId(String sDeparmentId, Integer iMainDeparment);

}
